문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 고차 함수 (문단 편집) ==== 3단계 : 인자 형식 일반화 ==== 이전 단계의 fold 함수는 정수 배열의 연산만 가능했다. 이를 모든 형식에 적용할 수 있게 일반화한다. {{{#!syntax cpp #include #include #include using namespace std; template return_type fold(const array &, const function &, const return_type &); int main(const int argc, const char **argv) { const array sequence = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; function add = [](const int &value_x, const int &value_y) -> int { return value_x + value_y; }; function multiply = [](const int &value_x, const int &value_y) -> int { return value_x * value_y; }; function(const string &)> join = [](const string &connector) -> function { return [connector](const string &value_x, const int &value_y) -> string { return value_x + to_string(value_y) + connector; }; }; cout << fold(sequence, add, 0) << endl; // 55 cout << fold(sequence, multiply, 1) << endl; // 3628800 cout << fold(sequence, join(","), string("")); // 1,2,3,4,5,6,7,8,9,10, return 0; } template return_type fold(const array &sequence, const function &fx, const return_type &initial_value) { auto result = initial_value; for (const type &i : sequence) { result = fx(result, i); } return result; } }}}저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기